package com.neuedu.corejava.ch6;
/*
 * 
 * 类的常见结构
 * 
 * 
 */
//在一个java文件中，只能有一个类是public类型的，且类的名称必须与文件名相同（大小写要相同，大小写敏感）
//在java类中，如果编写了静态代码块，代码块和构造器；在实例化对象时的执行先后顺序：静态代码块--> 代码块-->构造方法
public class Outter {

	//实例属性 --实例属性  -实例属性只跟对象相关
	private int id;
	private String name;
	
	//静态变量 --类属性   -类属性是全局属性，与类相关
	static String man="男";
	static String woman="女";
	
	public Outter(){
		System.out.println("outter 构造方法");
	}
	
	{
		//在一个java类中，可以编写代码块
		//代码块是跟实例相关，在执行构造方法前执行
		System.out.println("java 代码块");
	}
	
	static {
		//在一个java类中，可以编写静态代码块
		//静态代码块是跟类相关的
		System.out.println("java 静态代码块");
	}
	
	public  class Inner{
		//实例变量
		//类变量
		//常量
		//方法
		//可以有代码块
		//内部类不能编写静态代码块
		{
			//代码块
		}
		
		public class Inner2{
			//内部类可以支持多级嵌套
		}
		
		
		//特殊的：内部类有一个情况叫匿名内部类
		//在使用new关键词实例化接口或抽象类时，可以编写匿名内部类
		Runnable runnable= new Runnable() {
			
			@Override
			public void run() {
				
			}
		};
		
	}
	
	public class Inner3{
		//在一个类中可以支持嵌套多个内部类
	}
	
	
	
}

//在一个java文件中可以编写多个java类（外部类）
class Outter2{
	
}